package demo;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import org.hibernate.validator.Pattern;

import com.sun.org.apache.commons.digester.rss.Item;

import entidades.Producto;

public class CrearProductoBean {
	
	//public static final FacesMessage.Severity SEVERITY_INFO = new Severity("info");
	//public static final FacesMessage.Severity SEVERITY_ERROR= new Severity("error");
	private EntityManager em;
	private String nombre;
	private String codigo;
	@Pattern(regex="[0-9]*",message="Solo numeros")
	private double cantidad;
	private double precio;
	Producto p;
	
	public CrearProductoBean() {
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPATienda");
		em=emf.createEntityManager();
		
	}
	public String crearProducto() {
			Producto pro= new Producto();
			pro.setCantidad(cantidad);
			pro.setCodigo(codigo);
			pro.setNombre(nombre);
			pro.setPrecio(precio);
			
			em.getTransaction().begin();
			em.persist(pro);
			em.flush();
			em.getTransaction().commit();
			
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Creado con exito",null));
		
		
		return null;
	}

	
	public List<Producto> getProductos() {
		List<Producto> resultList = em.createQuery("select p from Producto p").getResultList();
		return resultList;
		
	}
	
	public void borrar(Producto prod) {
		em.getTransaction().begin();
		Producto pro= em.find(Producto.class,prod.getCodigo());
		em.remove(pro);
		em.flush();
		em.getTransaction().commit();
		
	}

	public EntityManager getEm() {
		return em;
	}

	public void setEm(EntityManager em) {
		this.em = em;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public double getCantidad() {
		return cantidad;
	}

	public void setCantidad(double cantidad) {
		this.cantidad = cantidad;
	}

	public double getPrecio() {
		return precio;
	}

	public void setPrecio(double precio) {
		this.precio = precio;
	}
	
	
	

}
